// 引入项目中的全局组件 对外暴露
import SvgIcon from '@/components/svgIcon/svgIcon.vue'
import Pagination from '@/components/Pagination/Pagination.vue'
// 引入三级分类全局组件
import category from '@/components/Category/category.vue'
import type { App, Component } from 'vue'
// 引入 element-plus 图标库
import * as ElementPlusIconsVue from '@element-plus/icons-vue'

//全局对象
const Component: any = { SvgIcon, Pagination, category }
export default {
  install(app: App) {
    // Object.keys() 方法会返回一个由一个给定对象的自身可枚举属性组成的数组 注册项目全部的全局组件
    Object.keys(Component).forEach((key: string) => {
      // 注册为全局组件 属性值为 key
      app.component(key, Component[key])
    })
    //将element-plus提供图标注册为全局组件
    for (const [key, component] of Object.entries(ElementPlusIconsVue)) {
      app.component(key, component)
    }
  },
}
